import os
import subprocess
from src.globle import *
from fuc_download.download_files import *

def software():
    print_head(head=[
        ".................我的电脑右键属性--FT2000属于ARM、3A4000属于mips................."
    ])
    print_menu_options(menu_options=[
        "微信相关",
        "远程",
        "字体安装",
        "金山WPS-清理金山缓存",
        "下载腾讯会议",
        "下载新版linuxqq"
    ])
    select_menu(menu_dict={
        '0': return_to_previous_menu,
        '1': fuc_wechat,
        '2': fuc_remote,
        '3': fuc_fonts,
        '4': fuc_kingsoft,
        '5': lambda: download_file('tencent_metting','deb'),
        '6': lambda: download_file('tencent_linuxqq','deb'),
        '99': fuc_crossover,
    })

def fuc_kingsoft():
    os.chdir(user_home)
    subprocess.call("quickstartoffice stop", shell=True)
    os.system("rm -rf .config/Kingsoft")
    os.system("rm -rf .local/share/Kingsoft")
    subprocess.call("quickstartoffice start", shell=True)
    get_pause()

def fuc_crossover():
    os.chdir(user_home)
    os.chdir(".cxoffice/")
    os.system('find . -name ".eval" -exec rm -f {} \;')
    os.system('sudo rm -f {}')
    get_pause()

def fuc_wechat():
    print_head(head=[
        ".................微信相关问题处理................."
    ])
    print_menu_options(menu_options=[
        "在公司源中安装微信--首选",
        "Mips--微信禁用gpu--适用于微信闪退及卡顿。",
        "Mips--微信登录提示登录失败error--在公司源中修复微信相关依赖",
        "Mips--离线修复微信相关依赖---公司源不可用情况下使用",
        "无法扫码--离线安装微信2.1.4-1版本。",
        "杀微信进程--双击微信图标无反应可尝试"
    ])
    select_menu(menu_dict={
        '0': return_to_previous_menu,
        '1': wechat_install,
        '2': wechat_gpu,
        '3': lambda: os.system("sudo apt update && sudo apt install -y kylin-activation libkylin-activation"),
        '4': lambda: {download_file('wx_mips_depend','deb_zip'),print(f"{COLOR_RED}在左下角开始菜单--所有程序里打开{COLOR_NONE}\n")},
        '5': lambda: {download_file('wx_2.1.4','deb'),print(f"{COLOR_RED}在左下角开始菜单--所有程序里打开{COLOR_NONE}\n")},
        '6': lambda: os.system("sudo killall -9 weixin || sudo killall -9 wechat"),
    })
def wechat_install():
    os.system("sudo apt update")
    if sys_str == "mips64":
        os.system("sudo apt install -y kylin-activation libkylin-activation wechat")
    else:
        os.system("sudo apt install -y weixin")
def wechat_gpu():
    os.system("cp /usr/share/applications/wechat.desktop /usr/share/applications/wechat.desktop_")
    os.system("sed -i 's/Exec=wechat %U/Exec=wechat  --disable-gpu  %U/' /usr/share/applications/wechat.desktop")
    os.system("sed -i 's/Exec=wechat %U/Exec=wechat  --disable-gpu  %U/' /home/$this_user/桌面/wechat.desktop")
    print("请关闭微信并重新打开微信。")


def fuc_remote():
    os.system("xhost +")
    print_head(head=[
        ".................注意有时这些软件第一次打开有时连不上，需要右下角退出重新打开一遍................."
    ])
    print_menu_options(menu_options=[
        "公司源中安装向日葵--首选",
        "公司源中安装todesk--首选",
        "安装Todesk的x86和arm版---此软件无mips",
        "老版本离线安装向日葵10.0版---V10MIPS常用，arm有问题也可用这个，最新版本尽量不用"
    ])
    select_menu(menu_dict={
        '0': return_to_previous_menu,
        '1': lambda: os.system("sudo apt install sunloginclient"),
        '2': lambda: os.system("sudo apt install todesk"),
        '3': fuc_todesk,
        '4': fuc_sunlogin
    })
def fuc_todesk():
    download_file('todesk','deb')
    print_head(head=[
        ".................应该是下载并安装成功了................."
        ".................在左下角开始菜单--所有程序里打开todesk................."
        ".................也可以尝试按任意键直接打开todesk，但是某些版本可能连不上，需重启电脑再打开................."
        ".................按ctrl + c退出................."
    ])
    get_pause
    os.system(f"sudo {local_user} & /opt/todesk/bin/ToDesk")

def fuc_sunlogin():
    download_file('sunlogin','deb')
    print_head(head=[
        ".................应该是下载并安装成功了................."
        ".................在左下角开始菜单--所有程序里打开向日葵................."
    ])

def fuc_fonts():
    print_head(head=[
        ".................安装字体，可百度搜ttf文件或在Windows中拷贝................."
    ])
    print_menu_options(menu_options=[
        "批量安装，需将ttf文件拷到新建的文件夹下再继续执行",
        "在公司源中安装字体管理器--推荐",
        "老版本--离线安装公司开发的老版本字体管理器，使用方法:双击ttf文件右上角有安装，适用于单个ttf安装及客户自行安装字体。"
    ])
    select_menu(menu_dict={
        '0': return_to_previous_menu,
        '1': fontsowninstall,
        '2': os.system("sudo apt install -y gnome-font-viewer"),
        '3': lambda:{ download_file('dfonts','deb'),
                     print(f"{COLOR_RED}应该是下载并安装成功了，右键ttf文件在字体查看器中打开，右上角有安装按钮。{COLOR_NONE}\n")} 
    })


#4.3.1 字体文件批量安装
def fontsowninstall():
    os.chdir(user_home)
    os.mkdir("newfonts")
    os.mkdir("/usr/share/fonts/newfonts")
    os.system("chmod -R 777 ./newfonts/")
    print(f"{COLOR_RED}请将ttf字体文件拷到newfonts文件夹中再按任意键继续进行操作:{COLOR_NONE}\n")
    get_pause
    os.system("chmod -R 777 ./newfonts/")
    os.system("cp ./newfonts/* /usr/share/fonts/newfonts/")
    os.system("chmod -R 777 /usr/share/fonts/newfonts/")
    os.system("fc-cache /usr/share/fonts/newfonts/")
    print(f"{COLOR_RED}应该可以用了，重新打开wps，fc相关组件未安装的需要重启下电脑。{COLOR_NONE}\n")